1 package uba.db.sql.language;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import junit.framework.TestCase;
7 import uba.db.testhelpers.TestUtils;
8
9 /***
10 * Test de unidad para {@link uba.db.sql.language.SingleSelectionCriteria}.
11 *
12 * @version $Revision: 1.6 $
13 */
14 public class SingleSelectionCriteriaTest extends TestCase {
15 private SingleSelectionCriteria singleSelectionCriteria;
16 private SingleSelectionCriteria sameSingleSelectionCriteria;
17 private SingleSelectionCriteria otherSelectionCriteria;
18
19 /***
20 * @see junit.framework.TestCase#setUp()
21 */
22 protected void setUp() throws Exception {
23 super.setUp();
24 singleSelectionCriteria = new SingleSelectionCriteria(new EqualComparison(
25 new TableName("A").column("c"), new TableName("B").column("c")));
26 sameSingleSelectionCriteria = new SingleSelectionCriteria(new EqualComparison(
27 new TableName("A").column("c"), new TableName("B").column("c")));
28 otherSelectionCriteria = new SingleSelectionCriteria(new EqualComparison(
29 new TableName("A").column("d"), new TableName("B").column("d")));
30 }
31
32 /***
33 * Test de igualdad entre dos instancias.
34 */
35 public void testEquals() {
36 TestUtils.assertEqualsImplementation(singleSelectionCriteria,
37 sameSingleSelectionCriteria,
38 otherSelectionCriteria);
39 }
40
41 /***
42 * Test: evaluar el criterio de selección.
43 */
44 public void testValueWith() throws Exception {
45 Map values = new HashMap();
46 values.put(new ColumnName("a"), "a value");
47 values.put(new ColumnName("b"), "b value");
48
49 EvaluationContext context = new MockEvaluationContext(values);
50
51 SingleSelectionCriteria criteria =
52 new SingleSelectionCriteria(new EqualComparison(new ColumnName("a"), new ColumnName("b")));
53
54 assertFalse(criteria.isTrueWith(context));
55 values.put(new ColumnName("b"), "a value");
56 assertTrue(criteria.isTrueWith(context));
57 }
58 }